home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-19 / iritsm3s.zip / FREEFORM.H < prev    next >
C/C++ Source or Header  |  1991-10-08  |  4KB  |  72 lines

  1. /*****************************************************************************
  2. *   "Irit" - the 3d polygonal solid modeller.                     *
  3. *                                         *
  4. * Written by:  Gershon Elber                Ver 0.2, Mar. 1990   *
  5. ******************************************************************************
  6. *   Module to provide the required interfact for the cagd library for the    *
  7. * free form surfaces and curves.                         *
  8. *****************************************************************************/
  9.  
  10. #ifndef FREEFORM_H
  11. #define FREEFORM_H
  12.  
  13. int GetDrawCtlPt(void);
  14. int GetFourPerFlat(void);
  15. ObjectStruct *GenBezierSurfaceObject(ObjectStruct *LstObjList);
  16. ObjectStruct *GenBezierCurveObject(ObjectStruct *PtObjList);
  17. ObjectStruct *GenBsplineSurfaceObject(RealType *UOrder, RealType *VOrder,
  18.               ObjectStruct *LstObjList, ObjectStruct *KntObjList);
  19. ObjectStruct *GenBsplineCurveObject(RealType *ROrder, ObjectStruct *PtObjList,
  20.                               ObjectStruct *KntObjList);
  21. ObjectStruct *DivideSurfaceObject(ObjectStruct *SrfObj, RealType *Dir,
  22.                             RealType *ParamVal);
  23. ObjectStruct *RegionFromSurfaceObject(ObjectStruct *SrfObj, RealType *RDir,
  24.                       RealType *ParamVal1, RealType *ParamVal2);
  25. ObjectStruct *DivideCurveObject(ObjectStruct *CrvObj, RealType *ParamVal);
  26. ObjectStruct *RegionFromCurveObject(ObjectStruct *CrvObj,
  27.                     RealType *ParamVal1, RealType *ParamVal2);
  28. ObjectStruct *RefineSurfaceObject(ObjectStruct *SrfObj, RealType *Dir,
  29.                   RealType *Replace, ObjectStruct *KnotsObj);
  30. ObjectStruct *RefineCurveObject(ObjectStruct *CrvObj, RealType *Replace,
  31.                             ObjectStruct *KnotsObj);
  32. ObjectStruct *EvalSurfaceObject(ObjectStruct *SrfObj, RealType *u, RealType *v);
  33. ObjectStruct *EvalCurveObject(ObjectStruct *CrvObj, RealType *t);
  34. ObjectStruct *NormalSurfaceObject(ObjectStruct *SrfObj, RealType *u,
  35.                                   RealType *v);
  36. ObjectStruct *TangentSurfaceObject(ObjectStruct *SrfObj, RealType *Dir,
  37.                              RealType *u, RealType *v);
  38. ObjectStruct *TangentCurveObject(ObjectStruct *CrvObj, RealType *t);
  39. ObjectStruct *CurveFromSrfMesh(ObjectStruct *SrfObj, RealType *Dir,
  40.                             RealType *Index);
  41. ObjectStruct *CurveFromSurface(ObjectStruct *SrfObj, RealType *Dir,
  42.                                 RealType *ParamVal);
  43. ObjectStruct *CurveReverse(ObjectStruct *CrvObj);
  44. ObjectStruct *SurfaceReverse(ObjectStruct *SrfObj);
  45. void ComputeCurveIsoLines(ObjectStruct *PObj);
  46. void ComputeSurfaceIsoLines(ObjectStruct *PObj);
  47. void ComputeSurfacePolygons(ObjectStruct *PObj);
  48. ObjectStruct *Geometry2Polygons(ObjectStruct *Obj);
  49. ObjectStruct *Geometry2Polylines(ObjectStruct *Obj);
  50. ObjectStruct *GenCircleCurveObject(VectorType Position, RealType *Radius);
  51. ObjectStruct *GenArcCurveObject(VectorType Start, VectorType Center,
  52.                             VectorType End);
  53. ObjectStruct *GenRuledSrfObject(ObjectStruct *Crv1, ObjectStruct *Crv2);
  54. ObjectStruct *GenBoolSumSrfObject(ObjectStruct *Crv1, ObjectStruct *Crv2,
  55.                   ObjectStruct *Crv3, ObjectStruct *Crv4);
  56. ObjectStruct *GenSrfFromCrvsObject(ObjectStruct *CrvList);
  57. ObjectStruct *GenSweepSrfObject(ObjectStruct *CrossSection, ObjectStruct *Axis,
  58.                      ObjectStruct *ScalingCrv, RealType *Scale);
  59. ObjectStruct *GenOffsetObject(ObjectStruct *Obj, RealType *Offset);
  60. ObjectStruct *MergeCurvesAndCtlPoints(ObjectStruct *PObj1, ObjectStruct *PObj2);
  61. ObjectStruct *EditCrvControlPoint(ObjectStruct *PObjCrv, ObjectStruct *PObjPt,
  62.                                  RealType *Index);
  63. ObjectStruct *EditSrfControlPoint(ObjectStruct *PObjSrf, ObjectStruct *PObjPt,
  64.                     RealType *UIndex, RealType *VIndex);
  65. ObjectStruct *RaiseCurveObject(ObjectStruct *PObjCrv, RealType *Order);
  66. ObjectStruct *RaiseSurfaceObject(ObjectStruct *PObjSrf, RealType *RDir,
  67.                              RealType *RNewOrder );
  68.  
  69. #endif /* FREEFORM_H */
  70.  
  71.  
  72.